package com.dis.user.mapper;

import com.dis.pojo.entity.Permission;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface PermissionMapper {

    /**
     * 查询所有权限
     */
    List<Permission> selectAll();

    /**
     * 根据ID查询权限
     */
    Permission selectById(Long id);

    /**
     * 根据ID列表查询权限
     */
    List<Permission> selectByIds(@Param("ids") List<Long> ids);

    /**
     * 根据用户ID查询菜单权限
     */
    List<Permission> selectMenusByUserId(Long userId);

    /**
     * 根据用户ID查询API权限
     */
    List<Permission> selectApisByUserId(Long userId);

    /**
     * 新增权限
     */
    int insert(Permission permission);

    /**
     * 更新权限
     */
    int update(Permission permission);

    /**
     * 删除权限
     */
    int deleteById(Long id);

    /**
     * 判断用户是否为超级管理员
     */
    boolean isUserAdmin(Long userId);

    /**
     * 根据角色编码查询菜单权限
     */
    List<Permission> selectMenusByRoleCode(String roleCode);

    /**
     * 根据角色ID查询菜单权限
     */
    List<Permission> selectMenusByRoleId(Long roleId);
}
